var pageIndex = 1;  //当前页码,用变量存
var totalPage = 1;  //不需要再写一个getTotalPage的新函数，因为totalPage在同一个ajax请求中以变量返回了
var orderListCurrentPage = [];  //当前页的水果列表
var updateOrderNo; //修改的No
var toUpdateOrder; //修改的order


function getOrderList(nowPage) {
    pageIndex = nowPage; //更新全局的当前页码，得到当前页码
    $.ajax({
        url: "order/list",
        type: "post",
        dataType: "json",
        data: {
            orderNo: $("#order").val(),
            pageIndex: nowPage, //当前页码
        },
        success: function (res) {
            console.log("后端响应数据res= ", res);
            orderListCurrentPage = res.orderList;
            var resData = res.orderList;
            totalPage = res.totalPage;//更新总页数
            var listHtml = '';
            resData.forEach((item, index) => {
                //    要用this的时候不要用箭头函数

                console.log('item= ', item);
                listHtml += ` <tr>
                            <td>${item.orderNo}</td>
                            <td>${item.createTime}</td>
                            <td>${item.companyName}</td>
                            <td>${item.orderPlace}</td>
                            <td>${item.totalAccount}</td>
                            <td>
                                <button type="button" class="btn btn-info btn-sm" onclick="goDetail(1)">查看详情</button>
                                <button type="button" class="btn btn-warning btn-sm" data-target="myModal" onclick="updateOrder(${index})">修改</button>
                                <button type="button" class="btn btn-danger btn-sm" onclick="delOrder(${item.orderNo})" data-id="${item.orderNo}">删除</button>
                            </td>

                        </tr>`

            });
            $('tbody').html(listHtml)

            var pageHtml = '';
            pageHtml = `<li onclick="goBefore()">
                            <a href="#" aria-label="Previous">
                                <span aria-hidden="true">&laquo;</span>
                            </a>
                        </li>`;
            // 遍历动态生成页码
            for (var i = 1; i <= res.totalPage; i++) {
                // 高亮时有active的class
                var activeClass = '';
                if (i == pageIndex) {
                    activeClass = 'active'
                }
                pageHtml += ` <li class="${activeClass}" onclick="getOrderList(${i})"><a href="#" >${i}</a></li>`
            }
            pageHtml += `<li onclick="goAfter()">
                            <a href="#" aria-label="Next">
                                <span aria-hidden="true">&raquo;</span>
                            </a>
                        </li>`;
            $('.pagination').html(pageHtml)


        },
        error: function (err) {
            console.log(err);
        }
    })
}
function delOrder(orderNo) {
    console.log("删除的订单No= " + orderNo);
    var flag = confirm("确定要删除该订单吗？")
    if (flag) {
        $.ajax({
            url: "order/delete",
            type: "post",
            dataType: "json",
            data: {
                // 注意：前后端的参数名要保持一致
                // 前端提交的字段名：username的页面获取值
                orderNo: orderNo
            },
            success: function (res) {
                // res接收到的是Servlet里的JSONObject data
                // 前后端分割不同人开发时
                // 前端不知道后端返回的数据是什么样的数据结构时
                // 一定要先打印看下后端返回的数据结构
                console.log("后端响应数据res=", res);
                if (res.flag) {
                    // 解决了当删除的是 最后一页 的 唯一一条数据 时，
                    // 没自动跳转到有数据的上一页的bug
                    // 当删除的是 最后一页 的 唯一一条数据 时，删除后应该自动跳转到上一页
                    // （因为当前页已经没有数据可显示了）
                    var currentPageDataLength = orderListCurrentPage.length; // 示例，具体看你的返回结构
                    // length有无错
                    var isLastPage = (pageIndex == totalPage);
                    var isOnlyOneRecord = (currentPageDataLength === 1);

                    if (isLastPage && isOnlyOneRecord) {
                        // 如果是最后一页，并且当前页只有这一条数据，删除后就无数据了，跳转到上一页
                        getOrderList(pageIndex - 1);
                    } else {
                        // 否则刷新当前页
                        getOrderList(pageIndex);
                    }
                    //前端同步更新表格数据——》remove或直接再请求渲染
                    // getFruitList(pageIndex);
                    // 不用remove溢出元素，因为用remove，当前页的pageSize条数可能会变少
                    alert("删除订单成功")
                }
                else {
                }

            },
            error: function (err) {
                console.log("删除订单失败", err);
            }
        })
    }
}
function updateOrder(index) {
    console.log("修改index= " + index);
    console.log("修改list= ", orderListCurrentPage);
    var order = orderListCurrentPage[index];  //获取当前行的数据
    toUpdateOrder=orderListCurrentPage[index];
    updateOrderNo = order.orderNo;

    //填充数据,有参设置，无参获取
    $("#orderNo").val(order.orderNo)
    $("#createTime").val(order.createTime)
    $("#companyName").val(order.companyName)
    $("#orderPlace").val(order.orderPlace)
    $("#orderTotalAccount").val(order.totalAccount)
    // $("#orderId").val(order.orderId)
    // $("#userId").val(order.userId)

    console.log("show模态框之前");
    
    $('#myModal').modal('show');  //先填充数据，再显示弹窗
    // 不会有一弹出为空，后面才有数据的情况
    console.log("show模态框之后");
}

function confirmUpdate() {
    //先获取用户修改后的数据
    var orderNo =toUpdateOrder.orderNo
    var createTime = toUpdateOrder.createTime
    var companyName = $("#companyName").val()
    var orderPlace = $("#orderPlace").val()
    var orderTotalAccount = toUpdateOrder.totalAccount
    var orderId = toUpdateOrder.orderId
    var userId=toUpdateOrder.userId

    if ( !companyName || !orderPlace) {
        alert("订单信息不能为空");
        return;
    }
    $.ajax({
        url: "order/update",
        type: "post",
        dataType: "json",
        data: {
            orderId:orderId,
            userId:userId,
            orderNo: orderNo,
            createTime: createTime,
            companyName: companyName,
            orderPlace: orderPlace,
            totalAccount: orderTotalAccount
        },
        success: function (res) {
            console.log("后端响应数据= " ,res);
            if(res.flag){
                alert("修改订单成功")
                // 修改完重新渲染数据
                getOrderList(pageIndex)
                $("#myModal").modal("hide")
            }
            
        },
        error: function (err) {
            console.log("修改订单失败", err);
        }
    })

}
function goBefore() {
    console.log("上一页");
    if (pageIndex - 1 >= 1) {
        pageIndex -= 1
    }
    getOrderList(pageIndex)
}
function goAfter() {
    //  if(pageIndex+1<=totalPage){
    //     pageIndex++
    // }
    if (pageIndex < totalPage) {
        pageIndex++
    }
    getOrderList(pageIndex)
}

function goDetail(num) {
    location.href = './detail.html?id=' + num + '&price=666'
}


getOrderList(pageIndex);